<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .title {
            color: red;
        }
    </style>
</head>
<body>
    <!-- 1. 准备容器 -->
    <div id="root"></div>

    <!-- 2. 引入js依赖 -->
    <!-- 2-1. 引入react核心库 -->
    <script src="https://unpkg.com/react@17.0.2/umd/react.development.js"></script>
    <!-- 2-2. 引入react-dom，用于支持react操作DOM -->
    <script src="https://unpkg.com/react-dom@17.0.2/umd/react-dom.development.js"></script>
    <!-- 2-3. 引入babel，用于将jsx转为js -->
    <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>

    <!-- 3. type一定要写babel -->
    <script type="text/babel">
        const id = 'Title'
        const text = 'Hello, React'

        // 4. 创建虚拟DOM，此处一定不要写引号
        const VDOM = (
            <div>
                <h1 id={id.toLowerCase()} className="title">
                    <span style={{border: '1px solid red'}}>{text}</span>
                </h1>
                <input type="text" />
                <Good>123</Good>
            </div>
        )

        // 5. 渲染虚拟DOM到页面
        ReactDOM.render(VDOM, document.getElementById('root'))

        /* 
        JSX语法规则：
            1. 定义虚拟DOMO不要加引号
            2. 标签中混入js表达式时用{}
            3. 样式的类名要使用className
            4. 内联样式要使用style={{key: value}}
            5. 虚拟DOM必须只有一个根标签
            6. 标签必须闭合
            7. 标签首字母
                *. 若以小写字母开头，将被转为html标签
                *. 若以大写字母开头，将被视为组件
        */
    </script>
</body>
</html>